<template>
    <div>
        <div class="row" >
            <!-- 展示用户列表 -->
            <div v-show="info.users.length" class="card" v-for="user in info.users" :key="user.id">
                <!-- html_url -->
                <a :href="user.html_url" target="_blank">
                    <!--头像： avatar_url -->
                    <img :src="user.avatar_url" style='width: 100px'/>
                </a>
                <!-- login -->
                <p class="card-text">{{user.login}}</p>
            </div>
            <h1 v-show="info.isWelcome">欢迎使用</h1>
            <h1 v-show="info.isLoading">加载中...</h1>
            <h1 v-show="info.errMsg">{{info.errMsg}}</h1>
        </div>
    </div>
</template>

<script>
// 引入消息订阅发布
import pubSub from 'pubsub-js';

    export default {
        name:'List',
        data(){
            return{
                info:{
                    isWelcome:true,
                    isLoading:false,
                    errMsg:'',
                    users:[],
                }
            }
        },
        methods:{
            /* getItems(itmesObj){
                this.info = {...this.info,...itmesObj}
            } */
            getItems(_,itmesObj){
                this.info = {...this.info,...itmesObj}
            }
        },
        // 挂载钩子
        mounted(){
            // 获取查询结果事件
            // this.$bus.$on('getItems',this.getItems);
            // 消息订阅
            this.pubId = pubSub.subscribe('getUsers',this.getItems)
        },
        // 销毁前
        beforeDestroy(){
            // 解绑 getItems 事件
            // this.$bus.$off('getItems')
            // 取消消息订阅
            pubSub.unsubscribe(this.pubId);
        }
    }
</script>

<style scoped>
    .album {
        min-height: 50rem; /* Can be removed; just added for demo purposes */
        padding-top: 3rem;
        padding-bottom: 3rem;
        background-color: #f7f7f7;
    }

    .card {
        float: left;
        width: 33.333%;
        padding: .75rem;
        margin-bottom: 2rem;
        border: 1px solid #efefef;
        text-align: center;
    }

    .card > img {
        margin-bottom: .75rem;
        border-radius: 100px;
    }

    .card-text {
        font-size: 85%;
    }

</style>